#include "lpwr.h"
#include "key.h"
#include "led.h"


void lpwr_init(void)
{
    key_init();
//    
//    
//    HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);
//    HAL_NVIC_SetPriority(EXTI0_IRQn, 2, 2);
//    HAL_NVIC_EnableIRQ(EXTI0_IRQn);
//    
//    HAL_NVIC_SetPriority(EXTI1_IRQn, 1, 2);
//    HAL_NVIC_EnableIRQ(EXTI1_IRQn);
}

//void EXTI0_IRQHandler(void)
//{
//    HAL_GPIO_EXTI_IRQHandler(PIN_KEY1);
//}

//void EXTI1_IRQHandler(void)
//{
//    HAL_GPIO_EXTI_IRQHandler(PIN_KEY2);
//}

//void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
//{
//    // 
//}

void lpwr_set_sleep(void)
{
    LED1(0);
    HAL_SuspendTick();
    HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
    HAL_ResumeTick();
    LED1(1);
    
}

void lpwr_set_stop(void)
{
    LED1(0);
    HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
    stm32_clock_init(RCC_PLL_MUL9);
    LED1(1);
}

void lpwr_set_standby(void)
{
    LED1(0);
    __HAL_RCC_PWR_CLK_ENABLE();
    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
    HAL_PWR_EnterSTANDBYMode();
    LED1(0);
}

